<?php

require_once("../inc/util.inc");
require_once("../inc/email.inc");
require_once("../project/project.inc");

// Determine if phpmailer is installed and to be used (defined in project.inc)
if (isset($USE_PHPMAILER)) {
    if ($USE_PHPMAILER) {
        require_once("../inc/phpmailer/class.phpmailer.php");
    }
} else {
    $USE_PHPMAILER = false;
}

if (FORUM_MODERATION_EMAIL) {
}

/**
 * Send mail using the new User object style
 **/
function re_send_email($user, $subject, $body) {
    global $USE_PHPMAILER;
    global $PHPMAILER_HOST;
    global $PHPMAILER_MAILER;

    if ($USE_PHPMAILER) {
        $mail = new PHPMailer();
        $mail->AddAddress($user->getEmail(), $user->getName());
        $mail->Subject = $subject;
        $mail->Body = $body;
        $mail->From = EMAIL_FROM;
        $mail->FromName = EMAIL_FROM;
        $mail->Host = $PHPMAILER_HOST;
        $mail->Mailer = $PHPMAILER_MAILER;
        return $mail->Send();
    } else {
        if (defined('EMAIL_FROM')) {
            $headers = "From: ". EMAIL_FROM;
        } else {
            $headers ="";
        }
        return mail($user->getEmail(), $subject, $body, $headers);
    }
}

/**
 * If a post is hidden, this function emails the author
 * to let them know what happened.
 **/
function send_moderation_email($post, $message) {
    $body = "";
    $thread = $post->getThread();
    $user = $post->getOwner();
    $subject = PROJECT." forum moderation notice";
    $body = PROJECT." notification:

This email is to inform you that one of your posts in the forum has been affected by moderation in ".PROJECT.":
    Thread:         ".$thread->getTitle()."
    Link:           ".URL_BASE."/forum_thread.php?id=".$thread->getID()."

The moderator gave this explanation to why your post was moderated:
".$message;
$body .= "

This was the content of your post:
".$post->getContent()."

For further information and assistance with ".PROJECT." go to ".MASTER_URL;
    return re_send_email($user, $subject, $body);

}

/**
 * If an entire thread is hidden, this function emails the owner
 * to let them know what happened.
 */
function send_thread_moderation_email($thread, $message) {
    $user = $thread->getOwner();
    $body = "";

    $subject = PROJECT." forum moderation notice";
    $body = PROJECT." notification:

This email is sent to inform you that one of your threads in the forum has been affected by moderation in ".PROJECT.":
    Thread:         ".$thread->getTitle()."
    Link:           ".MASTER_URL."/forum_thread.php?id=".$thread->getID()."

The moderator gave this explanation to why your thread was moderated:
".$message;
$body .= "

For further information and assistance with ".PROJECT." go to ".MASTER_URL;
    return re_send_email($user, $subject, $body);

}

/**
 * If a user is subscribed to a thread that is replied to, this
 * function sends them an email notifying them of the reply.
 **/
function send_reply_notification_email($thread, $user){
    $title = PROJECT . ": A user has posted to '". stripslashes($thread->getTitle()) ."'";
    $link = URL_BASE . "forum_thread.php?id=" . $thread->getID();
    $body = "Another " . PROJECT . " user has posted to the thread \"" . stripslashes($thread->getTitle()) . "\".\n"
           ."To view the updated thread, visit the following URL:\n\n$link";
    return re_send_email($user, $title, $body);
}

/**
 * When a user clicks the red "x" to notify moderators about a post,
 * this function generates the email to let the moderators know about
 * it.
 **/
function send_report_post_email($user, $thread,  $post, $message) {
    $body = "";

    $subject = PROJECT." post in '".$thread->getTitle()."' reported as offensive";
    $body = PROJECT." notification:

This email is sent to inform you that one of the posts in the forum was reported as offensive in ".PROJECT.":
    Thread:         ".$thread->getTitle()."
    Post:           ".$post->getID()."
    Reporting User: ".$user->getID()."
    Link:           ".URL_BASE."/forum_thread.php?id=".$thread->getID()."#".$post->getID()."
    
The reporting user gave this explanation to why the post was reported:
".$message."

This was the contents of the post:
".$post->getContent()."

For further information and assistance with ".PROJECT." go to ".MASTER_URL;

    //Security check, do we have an admin?
    if (!defined("POST_REPORT_EMAILS")) error_page("This project has not yet defined an administrator to handle this kind of forum reports. Please contact the project and tell them to add this information in their html/project/project.inc file");
    $emails = explode("|", POST_REPORT_EMAILS);
    $success = true;
    foreach ($emails as $email) {
        $admin->email_addr = $email;
        if (!send_email($admin, $subject, $body)) {
            $success = false;
        }
    }
    return success;
}

function send_banish_email($user) {
    $subject = PROJECT." posting privileges suspended";
    $body = "
This email is to inform you that you will not be able to
post to the ".PROJECT." message boards for two weeks,
because your postings have not followed our guidelines.
    ";
    return re_send_email($user, $subject, $body);
}

?>
